原初 MVC
レイヤーの役割
Model : コマンドを受けて処理を行い、自身を更新
View : Model の変更を監視し、自身を更新
Controller : ユーザーの入力を受け付け、Model にコマンドを送る
登場当時はウィジェット単位でレイヤー分けをしていたが、より高次の Controller も市民権を得ている
MVC の課題
プレゼンテーション状態を保持できない
テストが難しい
継承 : プレゼンテーションごとに新しいウィジェットのサブクラスを作成
Pluggable views : ジェネリックな view クラスを用意して、そこにパラメータを与えて振る舞いを変える
Presentation Model : view と model の間にプレゼンテーションロジックのための中間層を設ける